#include "stand.h"

int main()
{
	int target;
	int zero;

	int array[10] = {3,2,1,0};
	int insert = 4;
	int i=0,j=0,v=0;
//	for (i=0;i<ARRLEN(array,int);i++) {
//		printf("%d\n",array[i]);	
//	}
	i=0;

	/*
	 * 目标：将数字4插入到数组中，数组要求大数在前，小数在后
	 * 思路：遍历数组，查看4的合适位置在哪里，然后，得到下标索引，比如说，4应该位置数组的0位置上，那么0位置上及后面的数据，全部向后移动一个位置。
	 *
	 * */
	while (1) {
		if (array[i] < insert) {
			if (v != 1) {
				v = 1;//表明已经找到合适的目标，下次不再循环。
				printf("target is [%d]\n",i);
				target = i;
			}
			//接下来查看array[i] != 0
			if (array[j] == 0) {
				zero = j;
				printf("array[%d] is 0\n",j);
				break;
			}
		}
		i++;
		j++; //下标不为0的索引值
	}//得到目标位置，第一个是0的数的下标。

	printf("%d,%d\n",zero,target); //打印出0值的下标和目标位置的下标。3,0
	for (; zero > target;zero --) {
		swap(&array[zero],&array[zero-1]);
	}

	swap(array+target,&insert);


	for (i=0;i<ARRLEN(array,int);i++) {
		printf("%d\n",array[i]);	
	}

 
}



/*
 * 自己还是过于浮躁，没有按照，自己的方向去努力，依然没有方向的在去和自己怄气。
 * 原本方向为：
	 * 首先确定程序的目标，程序的思想
	 * 接下来，确定判断条件的正确成立。
	 * 若需要准备什么数据，就先准备数据，要保证数据的正确性后，才可以下笔。去写之后的执行循环。
 * 而自己的方向为：
	 * 不要可以用，首先保证代码整洁，降低循环的次数。
	 * 然后开始写，ouch，写错了，贴膏药似得，贴，最后把代码贴的乱七八糟。
	 * 最后，看着乱七八糟的代码。心中，。。。。o(╯□╰)o，一个囧字了得
 * */
